Imports System.Collections

Friend Class AuditVariable
     Private _VariableName As String
     Private _VariableGUID As String
     Private _VariableNamespace As String
     Private _VariableQualifiedName As String

     Public Sub New(ByVal VariableName As String, ByVal VariableGUID As String, ByVal VariableNamespace As String, ByVal VariableQualifiedName As String)
          _VariableName = VariableName.Trim
          _VariableGUID = VariableGUID.Trim
          _VariableNamespace = VariableNamespace.Trim
          _VariableQualifiedName = VariableQualifiedName.Trim
     End Sub

     Public ReadOnly Property VariableDisplayName() As String
          Get
               Return CType(_VariableName, String)
          End Get
     End Property

     Public ReadOnly Property VariableName() As String
          Get
               Return CType(_VariableName, String)
          End Get
     End Property

     Public ReadOnly Property VariableGUID() As String
          Get
               Return CType(_VariableGUID, String)
          End Get
     End Property

     Public ReadOnly Property VariableNamespace() As String
          Get
               Return CType(_VariableNamespace, String)
          End Get
     End Property

     Public ReadOnly Property VariableQualifiedName() As String
          Get
               Return CType(_VariableQualifiedName, String)
          End Get
     End Property
End Class

Friend Class AuditVariables
     Inherits CollectionBase

     Public Sub New()
          List.Clear()
     End Sub

     Public Sub Add(ByVal Variable As AuditVariable)
          List.Add(Variable)
     End Sub

     Public Sub Add(ByVal VariableName As String, ByVal VariableGUID As String, ByVal VariableNamespace As String, ByVal VariableQualifiedName As String)
          List.Add(New AuditVariable(VariableName, VariableGUID, VariableNamespace, VariableQualifiedName))
     End Sub

     Default Public Property Item(ByVal Index As Integer) As AuditVariable
          Get
               Return CType(List.Item(Index), AuditVariable)
          End Get
          Set(ByVal Value As AuditVariable)
               List.Item(Index) = Value
          End Set
     End Property
End Class
